package com.example.zhilierp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.zhilierp.entity.Dept;

import java.util.List;

/**
 * 部门服务接口
 * 定义部门相关的业务逻辑方法
 */
public interface DeptService extends IService<Dept> {

    /**
     * 获取部门树结构
     * @return 部门树
     */
    List<Dept> getDeptTree();

    /**
     * 检查部门名称是否唯一
     * @param deptName 部门名称
     * @param deptId 部门ID（编辑时使用）
     * @param parentId 父部门ID
     * @return 是否唯一
     */
    boolean checkDeptNameUnique(String deptName, Long deptId, Long parentId);

    /**
     * 新增部门
     * @param dept 部门信息
     * @return 操作结果
     */
    boolean insertDept(Dept dept);

    /**
     * 修改部门
     * @param dept 部门信息
     * @return 操作结果
     */
    boolean updateDept(Dept dept);

    /**
     * 删除部门
     * @param deptId 部门ID
     * @return 操作结果
     */
    boolean deleteDept(Long deptId);

    /**
     * 检查部门是否有子部门
     * @param deptId 部门ID
     * @return 是否有子部门
     */
    boolean hasChildDept(Long deptId);

    /**
     * 检查部门是否有用户
     * @param deptId 部门ID
     * @return 是否有用户
     */
    boolean hasUser(Long deptId);
}